Electrically active implantable medical devices such as pacemakers, cardioverter/defibrillators, neurological stimulators and drug pumps are well known in the art. Such implantable medical devices are commonly powered by an internal power source, such as a battery, and are controlled by an internal controller, such as a microprocessor. The controller commonly controls additional circuitry to deliver appropriate therapy to the patient in whom the device has been implanted and to sense the patient condition using internal sensors. Further, the controller commonly controls a wireless communication system which enables the implantable medical device to exchange information and commands with medical devices external to the patient, as well as other implantable medical devices.
In order to facilitate the various functions of the controller of the implantable medical device, such implantable medical devices are commonly provided with readable and rewriteable data storage elements. Such data storage elements may be utilized by the controller to perform operations, may store sensor information from the implantable medical devices and may store information to be sent or which has been received via wireless communications, among other digital information which may be associated with the implantable medical device, as is well known in the art. Such data storage elements may include conventional random access memory (RAM) blocks, such as static random access memory (SRAM), as well as memory devices considered to be non-volatile, such as electrically erasable programmable read-only memory (EEPROM).
Such data storage elements commonly and conventionally incorporate error checking and correction systems. Methods well known in the art, such as parity bits, checksums and error correction codes, provide, to varying degrees, the ability to identify digital information which has become corrupted and, in some cases, correct the corrupted information. In particular, such methods commonly incorporate dedicated error checking memory cells which correspond to particular, predetermined data memory cells. As known in the art, when a byte of data is to be stored in data memory cells, an error correction code is calculated for the byte and the error checking memory cells are programmed with the code based concurrent with the storing of the data.
If a memory cell of either the error checking memory cells or the data memory cells changes, because of spontaneous data corruption, physical corruption of the memory cell, or because of various alternative causes, the code in the error checking cells will not correspond to the data in the data memory cells and it may be inferred that at least one memory cell has become corrupted. In methods which also provide for error correction, it may be possible to restore the corrupted memory cell to its appropriate configuration. Error correction methods may be particularly beneficial in medical device applications where corrupted data may impact the performance of the implantable device or deny a medical professional stored data which may be useful in diagnosing the patient's condition.